/**
  * Author: Mei
  * Date: 2021-01-05 15:06
  * Description: 
  *
  */
#include <memory>
#include <iostream>
#include <functional>

using namespace std;

int main() {
    unique_ptr<int> up(new int(10));
    cout << *up << endl;

    unique_ptr<int> up1 = move(up); //不能复制 可以移动
    //cout << *up << endl; //移动之后up不能再用了

    //指向一个数组
    unique_ptr<int[]> ptr(new int[10]);
    //指定删除器  lambda在没有捕获变量的情况下是可以直接转换为函数指针的，一旦捕获了就无法转换了
    unique_ptr<int, function<void(int*)>> ptr1(new int(1), [](int*p) {
        cout << "destory" << endl;
        delete p;
    });


}